1. Field of the Invention
This invention relates to the transfer of information from one device to another. Specifically, this invention relates to the transfer of information from a first device to a second device, when access by the second device to the first device is restricted.
2. Description of Related Art and General Background
A computer 100a as shown in FIG. 1 comprises a processor 110 and memory 120. Processor 110 may comprise one or more microprocessors, for example, while memory 120 may comprise semiconductor memory (read-only memory (ROM) and/or random-access memory (RAM)) arranged in one or more hierarchical levels (e.g. Level 1 cache, Level 2 cache, main memory, Basic Input/Output System (BIOS)).
A computer supports input of information from and/or output of information to one or more peripheral hardware devices 200a, 200b, 200c. Examples of such devices include video displays; keyboards; devices for input and/or output of audio and/or video; and interfaces for networks, secondary storage media such as disk and/or tape drives, printers, and the like. Several such devices may be linked to the computer through a system bus 300, which may be a PCI (Peripheral Connect Interface) bus as defined by PCI Local Bus Specification, rev. 2.2, PCI Special Interest Group, Hillsboro, Oreg. These devices may be either integrated into the computer or may be removably connected to system bus 300 having a system bus controller 310 (see FIGS. 1 and 2) through a bus connector provided on the device.
It is desirable in many instances for a computer to operate as expected even when it is unattended (i.e. even when a user is not present to control the computer directly through its console). For example, a user may schedule a large computational task to execute overnight. Alternatively, the computer may be connected to a network as a server, operating largely unattended while it supports applications and/or communications for a number of client machines.
When an unattended computer fails to function as desired, it may be inconvenient or impossible for a technician to reach the console immediately in order to diagnose and correct the problem, and the resulting downtime may be costly. To enable timely and effective system management, it is desirable to be able to monitor the operation of a computer from a remote location. Specifically, it is desirable to be able to view the video output of a computer remotely.
One form of a peripheral device that supports a limited remote capability for a computer 100a as shown in FIG. 1 is a remote monitoring device (RMD) 200a. Such a device 200a connects to system bus 300 as shown in FIG. 1 and transmits information to a remote user over a telephone line (not shown). RMD 200a may be equipped with its own processor, allowing it to operate independently of host processor 110 and access information stored on video controller 200b directly over system bus 300.
It is desirable to use a local bus to support high-bandwidth transfers of information such as video output. One example of such a bus is the Accelerated Graphics Port (AGP) bus as defined in AGP Specification, rev. 2.0, May 4, 1998, Intel Corp. (Santa Clara, Calif.). A local bus 500 may have a dedicated bus controller 510 as shown in the host computer 100b of FIG. 2, or control of the local and system buses may be integrated into a single bus controller 610 (where information exchanged between processor 110 and memory 120 does not pass through the bus controller) or 620 (where information may be exchanged between processor 110 and memory 120 via the bus controller) as shown in FIGS. 3 and 4, respectively. By way of example, controller 620 may be implemented using one among the 440BX, 440LX, 440EX, 440MX, 810, 820, or 840 chipsets manufactured by Intel Corp. (Santa Clara, Calif.), wherein system bus 300 is a PCI bus.
Because the local and system buses operate at different speeds, a device on system bus 300 (such as RMD 200a) cannot directly access a device on local bus 500. Moreover, in order to protect the performance of local bus 500, the bus controller may be designed to block requests for access to devices on the local bus by devices on system bus 300. Consequently, in a case where the host computer uses a local bus video controller 400 such as an AGP video card or an embedded AGP video device, remotely monitoring the video output of the host computer with a device on system bus 300 has been considered to be impossible without the support of the operating system of computer 100c, 100d. For example, such remote monitoring has been considered to be impossible (1) before an operating system of computer 100c, 100d boots and (2) after the operating system has crashed.
It is desirable for a remote monitoring device on a system bus to be able to access the memory of a video controller on a local bus during substantially all stages of operation of the host computer, including periods during which the host computer""s operating system has not yet loaded, has loaded incorrectly, or has crashed.